home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / BASIC / 0006.ZIP / CONFIG.BAS < prev    next >
BASIC Source File  |  1984-02-26  |  2KB  |  43 lines

  1. 10 ' Exercise to get IBM-PC configuration from vectors in ROM BIOS
  2. 20 '                     Peter G. Wohlmut
  3. 30 '                          5-3-82
  4. 40 '
  5. 50 DEF SEG=&H40 ' set reference for ROM BIOS configuration check
  6. 60 DIM RS232(4),PRINTER(4)
  7. 70 FOR I=1 TO 8 STEP 2:J=INT(I-1)/2+1:RS232(J)=PEEK(I+1)*256+PEEK(I):PRINTER(J)=PEEK(9+I)*256+PEEK(8+I):NEXT I 'saves upto 4 rs232 and printer addresses
  8. 80 CONFIG1=PEEK(&H10):CONFIG2=PEEK(&H11)
  9. 90 DISKS=0:IF (CONFIG1 AND 1) =1 THEN DISKS = (CONFIG1 AND (2^6+2^7))/32
  10. 100 GAMES=(CONFIG2 AND 16)/16
  11. 110 NO.RS232 = (CONFIG2 AND 14)/2
  12. 120 VIDEO = (CONFIG1 AND (2^4 +2^5))/16
  13. 130 NO.PRINTER = (CONFIG2 AND (2^6 +2^7))/64
  14. 140 MEMSIZE = PEEK(&H14)*256+PEEK(&H13)
  15. 150 RAM = PEEK(&H16)*256+PEEK(&H15)
  16. 160 SCREEN.TYPE = VIDEO MOD 3:MIDDLE=(80-40*(SCREEN.TYPE MOD 2))/2:WIDTH 2*MIDDLE
  17. 170 SCREEN 0,CINT(SCREEN.TYPE/2+.1)
  18. 180 COLOR SCREEN.TYPE+7
  19. 190 CLS:LOCATE 3,MIDDLE-10:PRINT "IBM-PC CONFIGURATION"
  20. 200 LOCATE 4,MIDDLE-10:PRINT "--------------------"
  21. 210 COLOR CINT(1.5*SCREEN.TYPE)+7
  22. 220 LOCATE 5,MIDDLE- 10:PRINT USING "Total Memory   ####K";MEMSIZE
  23. 230 LOCATE 6,MIDDLE- 10:PRINT USING "I/O RAM Memory ####K";RAM
  24. 240 COLOR 2*SCREEN.TYPE+7
  25. 250 LOCATE 8,MIDDLE-10:PRINT USING "Floppy Disk Drives #";DISKS
  26. 260 COLOR CINT(2.5*SCREEN.TYPE)+7
  27. 270 LOCATE 10,MIDDLE-10:PRINT USING "Game Adapter       #";GAMES
  28. 280 COLOR 3*SCREEN.TYPE+7
  29. 290 LOCATE 12,MIDDLE-10:PRINT USING "RS232 Ports        #";NO.RS232
  30. 300 COLOR CINT(3.5*SCREEN.TYPE)+7
  31. 310 LOCATE 14,MIDDLE-10:PRINT USING "Printers           #";NO.PRINTER
  32. 320 LOCATE 15,MIDDLE-10:PRINT "--------------------"
  33. 330 CAPS = (PEEK(&H17) AND &H40)/&H40
  34. 340 INSERT = (PEEK(&H17) AND &H80)/&H80
  35. 350 NUMBERS=(PEEK(&H17) AND &H20)/&H20
  36. 360 SCROLL=(PEEK(&H17) AND &H10)/&H10
  37. 370 LOCATE 17,MIDDLE-6:IF CAPS=1 THEN PRINT "CAPS LOCK  ON" ELSE PRINT "CAPS LOCK off"
  38. 380 LOCATE 18,MIDDLE-5:IF INSERT=1 THEN PRINT "Insert  ON" ELSE PRINT "Insert OFF"
  39. 390 LOCATE 19,MIDDLE-6:IF NUMBERS=1 THEN PRINT "Num  Lock  ON" ELSE PRINT "Num  Lock OFF"
  40. 400 LOCATE 20,MIDDLE-7:IF SCROLL=1 THEN PRINT "Scroll Lock  ON" ELSE PRINT "Scroll Lock OFF"
  41. 410 LOCATE 21,MIDDLE - 8:PRINT "Hit [esc] to exit";
  42. 420 Z$=INKEY$:IF Z$=CHR$(27) THEN END ELSE GOTO 330
  43.